package status;

/**
 * @Author: linKe
 * @Date: 2022/1/15 15:33
 * @FileName: Client
 * @version: 1.0
 * @Description: 客户端    状态切换测试类
 * status 状态模式
 */
public class Client {

    public static void main(String[] args) {
        // 初始化糖果机糖果数量
        GumballMachine machine = new GumballMachine(5);
        // 调用投币接口 走的HasQuarterStatus的实现
        machine.insertQuarter();
        // 走的HasQuarterStatus的实现 进行随机数判断是否是中奖
        // 修改对应状态 未中奖--已售出状态
        // 售卖糖果 切换状态 --NoQuarterStatus状态
        machine.turnCrank();

        // 当前状态情况
        System.out.println(machine);

        // no -> has
        machine.insertQuarter();
        // has 退款方法
        machine.ejectQuarter();
    }

}
